// 商品模型
const { Goods } = require('../../../models/good');
// 店铺模型
const { Store } = require('../../../models/store');
// 统一数据返回类
const { DataReturn } = require('../../../common/returnclass');

/**
 * @api {Get} /goods 查询商品
 * @apiGroup Admin-Goods
 *
 * @apiParam {ObjectId} id 店铺id
 * @apiParam {String} [query] 搜索字段：商品名称(非必填)
 * @apiParam {Number} pagenum 数量
 * @apiParam {Number} pagesize 页数
 *
 * @apiSuccess {ObjectId} id 商品id
 * @apiSuccess {String} goods_cate  商品分类id
 * @apiSuccess {String} goods_dy_attr  动态参数
 * @apiSuccess {Array} goods_imgs  商品图片
 * @apiSuccess {String} goods_msg_price  商品销售价
 * @apiSuccess {String} goods_name  商品名称
 * @apiSuccess {String} goods_number  商品数量
 * @apiSuccess {String} goods_price  商品价格
 * @apiSuccess {String} goods_static_attr  静态参数
 * @apiSuccess {String} goods_store  商品所属店铺id
 * @apiSuccess {String} goods_weight  商品重量
 * @apiSuccess {String} is_recommend  是否推荐
 * @apiSuccess {String} sales_volume  销售数量
 */
module.exports = async (req, res) => {
	// 搜索名称 当前页 当前条数 店铺id 
		let { query, pagenum, pagesize, _id } = req.query;
		pagenum = parseInt(pagenum);
		pagesize = parseInt(pagesize);
		console.log('goods',req.query);
		
		let goods;
		if (_id) { // 商家用户查询
			
			if (query) {
				// 根据商品名称模糊查询 
				goods = await Goods.find({ goods_store: _id ,goods_name: { $regex: query,$options:"$i" }}).select('-goods_content').skip(pagesize*(pagenum-1)).limit(pagesize);
				if (!goods) return DataReturn.getData(res, 200, goods, '暂无商品数据');
				// 响应
				DataReturn.getData(res, 200, { data:goods, total: await Goods.find({goods_store: _id, goods_name: { $regex: query,$options:"$i" }}).countDocuments() }, '查询商品列表成功')
			} else {
				// 查询所有商品信息
				goods = await Goods.find({goods_store: _id}).select('-goods_content').skip(pagesize*(pagenum-1)).limit(pagesize);
				if (!goods) return DataReturn.getData(res, 200, goods, '暂无商品数据');
				// 响应
				DataReturn.getData(res, 200, { data:goods, total: await Goods.find({goods_store: _id}).countDocuments() }, '查询商品列表成功')
			}
			
		} else { // 管理员查询
		
			if (query) {
				// 根据商品名称模糊查询
				goods = await Goods.find({goods_name: { $regex: query,$options:"$i" }}).select('-goods_content').skip(pagesize*(pagenum-1)).limit(pagesize);
				if (!goods) return DataReturn.getData(res, 200, goods, '暂无商品数据');
				// 响应
				DataReturn.getData(res, 200, { data:goods, total: await Goods.find({goods_name: { $regex: query,$options:"$i" }}).countDocuments() }, '查询商品列表成功')
			} else {
				// 查询所有商品信息
				goods = await Goods.find().select('-goods_content').skip(pagesize*(pagenum-1)).limit(pagesize);
				if (!goods) return DataReturn.getData(res, 200, goods, '暂无商品数据');
				// 响应
				DataReturn.getData(res, 200, { data:goods, total: await Goods.find().countDocuments() }, '查询商品列表成功')
			}
			
		} 

}
